home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2posx10.zoo / m2posix.10 / src / posix1.dpp < prev    next >
Encoding:
Modula Definition  |  1993-12-13  |  16.3 KB  |  556 lines

  1. DEFINITION MODULE POSIX1;
  2. __DEF_SWITCHES__
  3. #ifdef HM2
  4. #ifdef __LONG_WHOLE__
  5. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  6. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  7. #else
  8. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  9. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  10. #endif
  11. #endif
  12. #if no_reexport
  13. #  error *** compiler does not allow reexporting!
  14. #endif
  15. (****************************************************************************)
  16. (* Das Modul fasst alle POSIX.1-Aufrufe, -Typen und -Konstanten und ein paar*)
  17. (* weitere Definitionen, die zwar nicht POSIX sind, aber fuer die Ausfueh-  *)
  18. (* rung der Prozeduren benoetigt werden, aus den unterliegenden Modulen zu- *)
  19. (* sammen. Fuer Leute, die lieber aus einem einzigen Modul importieren wol- *)
  20. (* len, und deren Compiler den Reexport erlaubt.                            *)
  21. (* Fuer die Beschreibung der Funktionen sollten die entsprechenden Defini-  *)
  22. (* tionsmodule konsultiert werden.                                          *)
  23. (* -------------------------------------------------------------------------*)
  24. (* 04-Dez-93, Holger Kleinschmidt & Ulrich Kaiser                           *)
  25. (****************************************************************************)
  26. #if !ISO_proc_const
  27. FROM SYSTEM IMPORT ADDRESS;
  28. FROM PORTAB IMPORT SIGNEDLONG,UNSIGNEDWORD;
  29. FROM types  IMPORT StrPtr,StrArray,StrRange;
  30. #endif
  31. IMPORT types,e,file,dir,proc,sys,term,sig,jump;
  32.  
  33. (*===========================================================================*)
  34. (* Modul: 'e'                                                                *)
  35. (*===========================================================================*)
  36.  
  37. (* 'e.errno' kann als Variable nicht reexportiert werden *)
  38. CONST
  39.   E2BIG        = e.E2BIG;
  40.   EACCES       = e.EACCES;
  41.   EAGAIN       = e.EAGAIN;
  42.   EBADF        = e.EBADF;
  43.   EBUSY        = e.EBUSY;
  44.   ECHILD       = e.ECHILD;
  45.   EDEADLK      = e.EDEADLK;
  46.   EDOM         = e.EDOM;
  47.   EEXIST       = e.EEXIST;
  48.   EFAULT       = e.EFAULT;
  49.   EFBIG        = e.EFBIG;
  50.   EINTR        = e.EINTR;
  51.   EINVAL       = e.EINVAL;
  52.   EIO          = e.EIO;
  53.   EISDIR       = e.EISDIR;
  54.   EMFILE       = e.EMFILE;
  55.   EMLINK       = e.EMLINK;
  56.   ENAMETOOLONG = e.ENAMETOOLONG;
  57.   ENFILE       = e.ENFILE;
  58.   ENODEV       = e.ENODEV;
  59.   ENOENT       = e.ENOENT;
  60.   ENOEXEC      = e.ENOEXEC;
  61.   ENOLCK       = e.ENOLCK;
  62.   ENOMEM       = e.ENOMEM;
  63.   ENOSPC       = e.ENOSPC;
  64.   ENOSYS       = e.ENOSYS;
  65.   ENOTDIR      = e.ENOTDIR;
  66.   ENOTEMPTY    = e.ENOTEMPTY;
  67.   ENOTTY       = e.ENOTTY;
  68.   ENXIO        = e.ENXIO;
  69.   EPERM        = e.EPERM;
  70.   EPIPE        = e.EPIPE;
  71.   ERANGE       = e.ERANGE;
  72.   EROFS        = e.EROFS;
  73.   ESPIPE       = e.ESPIPE;
  74.   ESRCH        = e.ESRCH;
  75.   EXDEV        = e.EXDEV;
  76.   ELOOP        = e.ELOOP;
  77.  
  78. (*===========================================================================*)
  79. (* Modul: 'types'                                                            *)
  80. (*===========================================================================*)
  81.  
  82. CONST
  83.   NULL = types.NULL;
  84.  
  85. CONST
  86.   PosixArgMax      = types.PosixArgMax;
  87.   PosixChildMax    = types.PosixChildMax;
  88.   PosixLinkMax     = types.PosixLinkMax;
  89.   PosixMaxCanon    = types.PosixMaxCanon;
  90.   PosixMaxInput    = types.PosixMaxInput;
  91.   PosixNameMax     = types.PosixNameMax;
  92.   PosixNGroupsMax  = types.PosixNGroupsMax;
  93.   PosixOpenMax     = types.PosixOpenMax;
  94.   PosixPathMax     = types.PosixPathMax;
  95.   PosixPipeBuf     = types.PosixPipeBuf;
  96.   PosixStreamMax   = types.PosixStreamMax;
  97.   PosixSsizeMax    = types.PosixSsizeMax;
  98.  
  99. CONST
  100.   ClkTck     = types.ClkTck;
  101.   NGroupsMax = types.NGroupsMax;
  102.   SsizeMax   = types.SsizeMax;
  103.  
  104. TYPE
  105.   uidT   = types.uidT;
  106.   gidT   = types.gidT;
  107.   inoT   = types.inoT;
  108.   timeT  = types.timeT;
  109.   offT   = types.offT;
  110.   sizeT  = types.sizeT;
  111.   ssizeT = types.ssizeT;
  112.   devT   = types.devT;
  113.   nlinkT = types.nlinkT;
  114.   pidT   = types.pidT;
  115.   clockT = types.clockT;
  116.  
  117. (*===========================================================================*)
  118. (* Modul: 'file'                                                             *)
  119. (*===========================================================================*)
  120.  
  121. TYPE
  122.   FileModes = file.FileModes;
  123.   modeT     = file.modeT;
  124.  
  125. CONST
  126.   sIRWXU = file.sIRWXU;
  127.   sIRWXG = file.sIRWXG;
  128.   sIRWXO = file.sIRWXO;
  129.  
  130. CONST
  131.   sIFMT  = file.sIFMT;
  132.   sIFCHR = file.sIFCHR;
  133.   sIFDIR = file.sIFDIR;
  134.   sIFBLK = file.sIFBLK;
  135.   sIFREG = file.sIFREG;
  136.   sIFIFO = file.sIFIFO;
  137.   sIFLNK = file.sIFLNK;
  138.  
  139. TYPE
  140.   StatRec = file.StatRec;
  141.  
  142. TYPE
  143.   AccessModes = file.AccessModes;
  144.   AccessMode  = file.AccessMode;
  145.  
  146. CONST
  147.   fOK = file.fOK;
  148.  
  149. TYPE
  150.   UTimeBuf = file.UTimeBuf;
  151.  
  152. TYPE
  153.   OpenModes = file.OpenModes;
  154.   OpenMode  = file.OpenMode;
  155.  
  156. CONST
  157.   oACCMODE = file.oACCMODE;
  158.  
  159.   oRDONLY  = file.oRDONLY;
  160.   oWRONLY  = file.oWRONLY;
  161.   oRDWR    = file.oRDWR;
  162.  
  163. TYPE
  164.   SeekMode = file.SeekMode;
  165.  
  166. TYPE
  167.   FDFlags  = file.FDFlags;
  168.   FDFlag   = file.FDFlag;
  169.  
  170. TYPE
  171.   FcntlCmd = file.FcntlCmd;
  172.  
  173. TYPE
  174.   LockType = file.LockType;
  175.  
  176. TYPE
  177.   FlockRec = file.FlockRec;
  178.  
  179. TYPE
  180.   FcntlArg = file.FcntlArg;
  181.  
  182.  
  183. TYPE
  184.   PipeBuf = file.PipeBuf;
  185.  
  186. CONST
  187.   StdinFileNo  = file.StdinFileNo;
  188.   StdoutFileNo = file.StdoutFileNo;
  189.   StderrFileNo = file.StderrFileNo;
  190.  
  191.  
  192. #if ISO_proc_const
  193. CONST
  194.   creat     = file.creat;
  195.   open      = file.open;
  196.   fcntl     = file.fcntl;
  197.   close     = file.close;
  198.   read      = file.read;
  199.   write     = file.write;
  200.   lseek     = file.lseek;
  201.   ftruncate = file.ftruncate;
  202.   dup       = file.dup;
  203.   dup2      = file.dup2;
  204.   umask     = file.umask;
  205.   chmod     = file.chmod;
  206.   chown     = file.chown;
  207.   utime     = file.utime;
  208.   stat      = file.stat;
  209.   fstat     = file.fstat;
  210.   lstat     = file.lstat;
  211.   sISCHR    = file.sISCHR;
  212.   sISDIR    = file.sISDIR;
  213.   sISBLK    = file.sISBLK;
  214.   sISREG    = file.sISREG;
  215.   sISFIFO   = file.sISFIFO;
  216.   sISLNK    = file.sISLNK;
  217.   access    = file.access;
  218.   pipe      = file.pipe;
  219. #else
  220. VAR (* READ ONLY! *)
  221.   creat     : PROCEDURE(REF ARRAY OF CHAR,modeT):INTEGER;
  222.   open      : PROCEDURE(REF ARRAY OF CHAR,OpenMode,modeT):INTEGER;
  223.   fcntl     : PROCEDURE(INTEGER,FcntlCmd,VAR FcntlArg):INTEGER;
  224.   close     : PROCEDURE(INTEGER):INTEGER;
  225.   read      : PROCEDURE(INTEGER,ADDRESS,sizeT):ssizeT;
  226.   write     : PROCEDURE(INTEGER,ADDRESS,sizeT):ssizeT;
  227.   lseek     : PROCEDURE(INTEGER,offT,SeekMode):offT;
  228.   ftruncate : PROCEDURE(INTEGER,offT):INTEGER;
  229.   dup       : PROCEDURE(INTEGER):INTEGER;
  230.   dup2      : PROCEDURE(INTEGER,INTEGER):INTEGER;
  231.   umask     : PROCEDURE(modeT):modeT;
  232.   chmod     : PROCEDURE(REF ARRAY OF CHAR,modeT):INTEGER;
  233.   chown     : PROCEDURE(REF ARRAY OF CHAR,uidT,gidT):INTEGER;
  234.   utime     : PROCEDURE(REF ARRAY OF CHAR,UTimeBuf):INTEGER;
  235.   stat      : PROCEDURE(REF ARRAY OF CHAR,VAR StatRec):INTEGER;
  236.   fstat     : PROCEDURE(INTEGER,VAR StatRec):INTEGER;
  237.   lstat     : PROCEDURE(REF ARRAY OF CHAR,VAR StatRec):INTEGER;
  238.   sISCHR    : PROCEDURE(modeT):BOOLEAN;
  239.   sISDIR    : PROCEDURE(modeT):BOOLEAN;
  240.   sISBLK    : PROCEDURE(modeT):BOOLEAN;
  241.   sISREG    : PROCEDURE(modeT):BOOLEAN;
  242.   sISFIFO   : PROCEDURE(modeT):BOOLEAN;
  243.   sISLNK    : PROCEDURE(modeT):BOOLEAN;
  244.   access    : PROCEDURE(REF ARRAY OF CHAR,AccessMode):INTEGER;
  245.   pipe      : PROCEDURE(VAR PipeBuf):INTEGER;
  246. #endif
  247.  
  248. (*===========================================================================*)
  249. (* Modul: 'dir'                                                              *)
  250. (*===========================================================================*)
  251.  
  252. TYPE
  253.   DIR       = dir.DIR;
  254.   DirentPtr = dir.DirentPtr;
  255.   DirentRec = dir.DirentRec;
  256.  
  257. #if ISO_proc_const
  258. CONST
  259.   chdir     = dir.chdir;
  260.   getcwd    = dir.getcwd;
  261.   mkdir     = dir.mkdir;
  262.   rmdir     = dir.rmdir;
  263.   link      = dir.link;
  264.   unlink    = dir.unlink;
  265.   rename    = dir.rename;
  266.   opendir   = dir.opendir;
  267.   readdir   = dir.readdir;
  268.   rewinddir = dir.rewinddir;
  269.   closedir  = dir.closedir;
  270.   symlink   = dir.symlink;
  271.   readlink  = dir.readlink;
  272. #else
  273. VAR (* READ ONLY! *)
  274.   chdir     : PROCEDURE(REF ARRAY OF CHAR):INTEGER;
  275.   getcwd    : PROCEDURE(StrPtr,StrRange):StrPtr;
  276.   mkdir     : PROCEDURE(REF ARRAY OF CHAR,modeT):INTEGER;
  277.   rmdir     : PROCEDURE(REF ARRAY OF CHAR):INTEGER;
  278.   link      : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):INTEGER;
  279.   unlink    : PROCEDURE(REF ARRAY OF CHAR):INTEGER;
  280.   rename    : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):INTEGER;
  281.   opendir   : PROCEDURE(REF ARRAY OF CHAR):DIR;
  282.   readdir   : PROCEDURE(DIR):DirentPtr;
  283.   rewinddir : PROCEDURE(DIR);
  284.   closedir  : PROCEDURE(VAR DIR):INTEGER;
  285.   symlink   : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):INTEGER;
  286.   readlink  : PROCEDURE(REF ARRAY OF CHAR,StrPtr,StrRange):INTEGER;
  287. #endif
  288.  
  289. (*===========================================================================*)
  290. (* Modul: 'proc'                                                             *)
  291. (*===========================================================================*)
  292.  
  293. TYPE
  294.   WaitVal     = proc.WaitVal;
  295.   WaitOptions = proc.WaitOptions;
  296.   WaitOption  = proc.WaitOption;
  297.  
  298. TYPE
  299.   TmsRec = proc.TmsRec;
  300.  
  301. #if ISO_proc_const
  302. CONST
  303.   getpid      = proc.getpid;
  304.   getppid     = proc.getppid;
  305.   getuid      = proc.getuid;
  306.   getgid      = proc.getgid;
  307.   geteuid     = proc.geteuid;
  308.   getegid     = proc.getegid;
  309.   setuid      = proc.setuid;
  310.   setgid      = proc.setgid;
  311.   getpgrp     = proc.getpgrp;
  312.   setpgid     = proc.setpgid;
  313.   setsid      = proc.setsid;
  314.   fork        = proc.fork;
  315.   execve      = proc.execve;
  316.   execv       = proc.execv;
  317.   execvp      = proc.execvp;
  318.   waitpid     = proc.waitpid;
  319.   wait        = proc.wait;
  320.   WIFEXITED   = proc.WIFEXITED;
  321.   WEXITSTATUS = proc.WEXITSTATUS;
  322.   WIFSIGNALED = proc.WIFSIGNALED;
  323.   WTERMSIG    = proc.WTERMSIG;
  324.   WIFSTOPPED  = proc.WIFSTOPPED;
  325.   WSTOPSIG    = proc.WSTOPSIG;
  326.   times       = proc.times;
  327.   Exit        = proc.Exit;
  328. #else
  329. VAR (* READ ONLY! *)
  330.   getpid      : PROCEDURE():pidT;
  331.   getppid     : PROCEDURE():pidT;
  332.   getuid      : PROCEDURE():uidT;
  333.   getgid      : PROCEDURE():gidT;
  334.   geteuid     : PROCEDURE():uidT;
  335.   getegid     : PROCEDURE():gidT;
  336.   setuid      : PROCEDURE(uidT):INTEGER;
  337.   setgid      : PROCEDURE(gidT):INTEGER;
  338.   getpgrp     : PROCEDURE():pidT;
  339.   setpgid     : PROCEDURE(pidT,pidT):INTEGER;
  340.   setsid      : PROCEDURE():pidT;
  341.   fork        : PROCEDURE():pidT;
  342.   execve      : PROCEDURE(REF ARRAY OF CHAR,StrArray,StrArray):INTEGER;
  343.   execv       : PROCEDURE(REF ARRAY OF CHAR,StrArray):INTEGER;
  344.   execvp      : PROCEDURE(REF ARRAY OF CHAR,StrArray):INTEGER;
  345.   waitpid     : PROCEDURE(pidT,VAR WaitVal,WaitOption):pidT;
  346.   wait        : PROCEDURE(VAR WaitVal):pidT;
  347.   WIFEXITED   : PROCEDURE(WaitVal):BOOLEAN;
  348.   WEXITSTATUS : PROCEDURE(WaitVal):INTEGER;
  349.   WIFSIGNALED : PROCEDURE(WaitVal):BOOLEAN;
  350.   WTERMSIG    : PROCEDURE(WaitVal):CARDINAL;
  351.   WIFSTOPPED  : PROCEDURE(WaitVal):BOOLEAN;
  352.   WSTOPSIG    : PROCEDURE(WaitVal):CARDINAL;
  353.   times       : PROCEDURE(VAR TmsRec):clockT;
  354.   Exit        : PROCEDURE(INTEGER);
  355. #endif
  356.  
  357. (*===========================================================================*)
  358. (* Modul: 'term'                                                             *)
  359. (*===========================================================================*)
  360.  
  361. CONST
  362.   LCtermid = term.LCtermid;
  363.  
  364. TYPE
  365.   tciflags = term.tciflags;
  366.   tciflagT = term.tciflagT;
  367.  
  368. TYPE
  369.   tcoflags = term.tcoflags;
  370.   tcoflagT = term.tcoflagT;
  371.  
  372. TYPE
  373.   tccflags = term.tccflags;
  374.   tccflagT = term.tccflagT;
  375.  
  376. TYPE
  377.   tclflags = term.tclflags;
  378.   tclflagT = term.tclflagT;
  379.  
  380. TYPE
  381.   speedT = term.speedT;
  382.  
  383. TYPE
  384.   ccT   = term.ccT;
  385.   ccIdx = term.ccIdx;
  386.  
  387. CONST
  388.   NCCS = term.NCCS;
  389.  
  390. CONST
  391.   CR = term.CR;
  392.   NL = term.NL;
  393.  
  394. TYPE
  395.   TermiosRec = term.TermiosRec;
  396.  
  397. TYPE
  398.   AttrActions = term.AttrActions;
  399.  
  400. TYPE
  401.   FlowActions = term.FlowActions;
  402.  
  403. TYPE
  404.   QueueTypes = term.QueueTypes;
  405.  
  406.  
  407. #if ISO_proc_const
  408. CONST
  409.   isatty      = term.isatty;
  410.   ttyname     = term.ttyname;
  411.   ctermid     = term.ctermid;
  412.   cfgetispeed = term.cfgetispeed;
  413.   cfgetospeed = term.cfgetospeed;
  414.   cfsetispeed = term.cfsetispeed;
  415.   cfsetospeed = term.cfsetospeed;
  416.   tcgetattr   = term.tcgetattr;
  417.   tcsetattr   = term.tcsetattr;
  418.   tcsendbreak = term.tcsendbreak;
  419.   tcdrain     = term.tcdrain;
  420.   tcflow      = term.tcflow;
  421.   tcflush     = term.tcflush;
  422.   tcgetpgrp   = term.tcgetpgrp;
  423.   tcsetpgrp   = term.tcsetpgrp;
  424. #else
  425. VAR (* READ ONLY! *)
  426.   isatty      : PROCEDURE(INTEGER):INTEGER;
  427.   ttyname     : PROCEDURE(INTEGER):StrPtr;
  428.   ctermid     : PROCEDURE(StrPtr):StrPtr;
  429.   cfgetispeed : PROCEDURE(TermiosRec):speedT;
  430.   cfsetispeed : PROCEDURE(TermiosRec,speedT):INTEGER;
  431.   cfgetospeed : PROCEDURE(TermiosRec):speedT;
  432.   cfsetospeed : PROCEDURE(TermiosRec,speedT):INTEGER;
  433.   tcgetattr   : PROCEDURE(INTEGER,VAR TermiosRec):INTEGER;
  434.   tcsetattr   : PROCEDURE(INTEGER,AttrActions,TermiosRec):INTEGER;
  435.   tcsendbreak : PROCEDURE(INTEGER,INTEGER):INTEGER;
  436.   tcdrain     : PROCEDURE(INTEGER):INTEGER;
  437.   tcflow      : PROCEDURE(INTEGER,FlowActions):INTEGER;
  438.   tcflush     : PROCEDURE(INTEGER,QueueTypes):INTEGER;
  439.   tcgetpgrp   : PROCEDURE(INTEGER):pidT;
  440.   tcsetpgrp   : PROCEDURE(INTEGER,pidT):INTEGER;
  441. #endif
  442.  
  443. (*===========================================================================*)
  444. (* Modul: 'sig'                                                              *)
  445. (*===========================================================================*)
  446.  
  447. CONST
  448.   SigDfl = sig.SigDfl;
  449.   SigIgn = sig.SigIgn;
  450.  
  451. TYPE
  452.   Signal = sig.Signal;
  453.  
  454. TYPE
  455.   SigsetPtr = sig.SigsetPtr;
  456.  
  457. TYPE
  458.   sigsetT = sig.sigsetT;
  459.  
  460. TYPE
  461.   SigHandler = sig.SigHandler;
  462.  
  463. TYPE
  464.   SignalHandler = sig.SignalHandler;
  465.  
  466. TYPE
  467.   SaFlags = sig.SaFlags;
  468.  
  469. TYPE
  470.   SigactionPtr = sig.SigactionPtr;
  471.   SigactionRec = sig.SigactionRec;
  472.  
  473. TYPE
  474.   BlockType = sig.BlockType;
  475.  
  476. #if ISO_proc_const
  477. CONST
  478.   sigemptyset = sig.sigemptyset;
  479.   sigfillset  = sig.sigfillset;
  480.   sigaddset   = sig.sigaddset;
  481.   sigdelset   = sig.sigdelset;
  482.   sigismember = sig.sigismember;
  483.   sigaction   = sig.sigaction;
  484.   sigprocmask = sig.sigprocmask;
  485.   sigpending  = sig.sigpending;
  486.   kill        = sig.kill;
  487.   pause       = sig.pause;
  488.   sigsuspend  = sig.sigsuspend;
  489.   sleep       = sig.sleep;
  490.   alarm       = sig.alarm;
  491. #else
  492. VAR (* READ ONLY! *)
  493.   sigemptyset : PROCEDURE(VAR sigsetT);
  494.   sigfillset  : PROCEDURE(VAR sigsetT);
  495.   sigaddset   : PROCEDURE(VAR sigsetT,Signal):INTEGER;
  496.   sigdelset   : PROCEDURE(VAR sigsetT,Signal):INTEGER;
  497.   sigismember : PROCEDURE(sigsetT,Signal):INTEGER;
  498.   sigaction   : PROCEDURE(Signal,SigactionPtr,SigactionPtr):INTEGER;
  499.   sigprocmask : PROCEDURE(BlockType,SigsetPtr,SigsetPtr):INTEGER;
  500.   sigpending  : PROCEDURE(VAR sigsetT):INTEGER;
  501.   kill        : PROCEDURE(pidT,Signal):INTEGER;
  502.   pause       : PROCEDURE():INTEGER;
  503.   sigsuspend  : PROCEDURE(sigsetT):INTEGER;
  504.   sleep       : PROCEDURE(CARDINAL):CARDINAL;
  505.   alarm       : PROCEDURE(CARDINAL):CARDINAL;
  506. #endif
  507.  
  508. (*===========================================================================*)
  509. (* Modul: 'sys'                                                              *)
  510. (*===========================================================================*)
  511.  
  512. TYPE
  513.   PConfVal = sys.PConfVal;
  514.   SConfVal = sys.SConfVal;
  515.  
  516. TYPE
  517.   UtsnameRec = sys.UtsnameRec;
  518.  
  519. #if ISO_proc_const
  520. CONST
  521.   uname    = sys.uname;
  522.   pathconf = sys.pathconf;
  523.   sysconf  = sys.sysconf;
  524.   time     = sys.time;
  525. #else
  526. VAR (* READ ONLY! *)
  527.   uname    : PROCEDURE(VAR UtsnameRec):INTEGER;
  528.   pathconf : PROCEDURE(REF ARRAY OF CHAR,PConfVal):SIGNEDLONG;
  529.   sysconf  : PROCEDURE(SConfVal):SIGNEDLONG;
  530.   time     : PROCEDURE(VAR timeT);
  531. #endif
  532.  
  533. (*===========================================================================*)
  534. (* Modul: 'jump'                                                             *)
  535. (*===========================================================================*)
  536.  
  537. TYPE
  538.   JmpBuf    = jump.JmpBuf;
  539.   SigJmpBuf = jump.SigJmpBuf;
  540.  
  541. #if ISO_proc_const
  542. CONST
  543.   setjmp      = jump.setjmp;
  544.   longjmp     = jump.longjmp;
  545.   sigsetjmp   = jump.sigsetjmp;
  546.   siglongjmp  = jump.siglongjmp;
  547. #else
  548. VAR (* READ ONLY! *)
  549.   setjmp      : PROCEDURE(VAR JmpBuf):INTEGER;
  550.   longjmp     : PROCEDURE(VAR JmpBuf,INTEGER);
  551.   sigsetjmp   : PROCEDURE(VAR SigJmpBuf,UNSIGNEDWORD):INTEGER;
  552.   siglongjmp  : PROCEDURE(VAR SigJmpBuf,INTEGER);
  553. #endif
  554.  
  555. END POSIX1.
  556.